#include "RegisterCmds.h"
#include "ListCmdsHandler.h"
#include "Line2DHandler.h"
#include "UcsHandler.h"
#include "Arc2DHandler.h"
#include "DXFHandler.h"
#include "Array2DHandler.h"
#include "Copy2DHandler.h"
#include "DeleteHandler.h"
#include "Move2DHandler.h"
#include "Mirror2DHandler.h"
#include "Stretch2DHandler.h"
#include "FitCurve2DHandler.h"
#include "Line3DHandler.h"
#include "Arc3DHandler.h"
#include "CylinderHandler.h"
#include "MultiSectionCylinderHandler.h"
#include "PolygonWithHolesHandler.h"
#include "ExplodeHandler.h"
#include "ReverseHandler.h"
#include "Stretch3DHandler.h"
#include "FitCurve3DHandler.h"
#include "Move3DHandler.h"
#include "RuledSurfaceHandler.h"
#include "PointRuledSurfaceHandler.h"
#include "Rotate2DHandler.h"
#include "Extend2DHandler.h"
#include "Trim2DHandler.h"
#include "Rectangle2DHandler.h"
#include "Chamfer2DHandler.h"
#include "Fillet2DHandler.h"
#include "CombineCurveHandler.h"
#include "CurveRevolutionHandler.h"
#include "PosHandler.h"
#include "DistanceHandler.h"
#include "SetRotateCenterHandler.h"
#include "UndoHandler.h"
#include "RedoHandler.h"
#include "Copy3DHandler.h"
#include "SweepHandler.h"
#include "Pline2DHandler.h"
#include "Circle2DHandler.h"
#include "Circle3DHandler.h"
#include "Offset2DHandler.h"
#include "D2To3Handler.h"
#include "PolygonGeneratorHandler.h"
#include "Radius2DHandler.h"
#include "Radius3DHandler.h"
#include "VerticalAxisTransformHandler.h"
#include "RotateHandler.h"
#include "CurveEdgePlaneSurfaceHandler.h"
#include "HideFaceHandler.h"

void registerCmds(CmdManager* cmdManager)
{
	cmdManager->regCmd("ls", &ListCmdsHandler::staticMetaObject, false, true, QObject::tr("显示命令"));
	cmdManager->regCmd("u", &UndoHandler::staticMetaObject, true, true, QObject::tr("撤销"));
	cmdManager->regCmd("redo", &RedoHandler::staticMetaObject, true, true, QObject::tr("重做"));
	cmdManager->regCmd("id", &PosHandler::staticMetaObject, true, false, QObject::tr("显示点坐标"));
	cmdManager->regCmd("di", &DistanceHandler::staticMetaObject, true, false, QObject::tr("测量距离"));
	cmdManager->regCmd("rotateCenter", &SetRotateCenterHandler::staticMetaObject, true, true, QObject::tr("指定旋转中心"));
	cmdManager->regCmd("ucs", &UcsHandler::staticMetaObject, true, false, QObject::tr("切换UCS"));
	cmdManager->regCmd("ucs2", &WorkPlaneHandler::staticMetaObject, true, false, QObject::tr("切换工作平面"));
	cmdManager->regCmd("delete", &DeleteHandler::staticMetaObject, true, false, QObject::tr("删除"));
	cmdManager->regCmd("e", &DeleteHandler::staticMetaObject, true, false, QObject::tr("删除"));
	cmdManager->regCmd("hideFace", &HideFaceHandler::staticMetaObject, true, false, QObject::tr("隐藏面"));
	cmdManager->regCmd("l2", &Line2DHandler::staticMetaObject, true, false, QObject::tr("绘制直线"));
	cmdManager->regCmd("a2", &Arc2DHandler::staticMetaObject, true, false, QObject::tr("绘制圆弧"));
	cmdManager->regCmd("rect", &Rectangle2DHandler::staticMetaObject, true, false, QObject::tr("二维矩形"));
	cmdManager->regCmd("dxf2", &DXFHandler::staticMetaObject, true, false, QObject::tr("导入二维DXF"));
	cmdManager->regCmd("dxf3", &DXF3Handler::staticMetaObject, true, false, QObject::tr("导入三维DXF"));
	cmdManager->regCmd("ar2", &Array2DHandler::staticMetaObject, true, false, QObject::tr("二维阵列"));
	cmdManager->regCmd("ar3", &Array3DHandler::staticMetaObject, true, false, QObject::tr("三维阵列"));
	cmdManager->regCmd("m2", &Move2DHandler::staticMetaObject, true, false, QObject::tr("二维移动"));
	cmdManager->regCmd("copy2", &Copy2DHandler::staticMetaObject, true, false, QObject::tr("二维复制"));
	cmdManager->regCmd("mirror", &Mirror2DHandler::staticMetaObject, true, false, QObject::tr("二维镜像"));
	cmdManager->regCmd("stretch2", &Stretch2DHandler::staticMetaObject, true, false, QObject::tr("二维拉伸"));
	cmdManager->regCmd("rot2", &Rotate2DHandler::staticMetaObject, true, false, QObject::tr("二维旋转"));
	cmdManager->regCmd("extend", &Extend2DHandler::staticMetaObject, true, false, QObject::tr("延伸曲线"));
	cmdManager->regCmd("trim", &Trim2DHandler::staticMetaObject, true, false, QObject::tr("修剪曲线"));
	cmdManager->regCmd("fit2l", &FitCurve2DHandler::staticMetaObject, true, false, QObject::tr("合并二维小曲线为spline"));
	cmdManager->regCmd("fit2", &FitPoints2DHandler::staticMetaObject, true, false, QObject::tr("合并二维点为spline"));
	cmdManager->regCmd("chamfer", &Chamfer2DHandler::staticMetaObject, true, false, QObject::tr("倒斜角"));
	cmdManager->regCmd("fillet", &Fillet2DHandler::staticMetaObject, true, false, QObject::tr("圆角"));
	cmdManager->regCmd("l3", &Line3DHandler::staticMetaObject, true, false, QObject::tr("三维直线"));
	cmdManager->regCmd("a3", &Arc3DHandler::staticMetaObject, true, false, QObject::tr("三维圆弧"));
	cmdManager->regCmd("cylinder", &CylinderHandler::staticMetaObject, true, false, QObject::tr("圆柱体"));
	cmdManager->regCmd("cylinders", &MultiSectionCylinderHandler::staticMetaObject, true, false, QObject::tr("多段圆柱体"));
	cmdManager->regCmd("polygonl", &PolygonWithHolesHandler::staticMetaObject, true, false, QObject::tr("通过边创建多边形"));
	cmdManager->regCmd("polygon", &PolygonWithHoles2Handler::staticMetaObject, true, false, QObject::tr("通过点创建多边形"));
	cmdManager->regCmd("explode", &ExplodeHandler::staticMetaObject, true, false, QObject::tr("打散"));
	cmdManager->regCmd("reverse", &ReverseHandler::staticMetaObject, true, false, QObject::tr("翻转"));
	cmdManager->regCmd("stretch3", &Stretch3DHandler::staticMetaObject, true, false, QObject::tr("三维拉伸"));
	cmdManager->regCmd("fit3l", &FitCurve3DHandler::staticMetaObject, true, false, QObject::tr("合并三维小曲线为spline"));
	cmdManager->regCmd("fit3", &FitPoints3DHandler::staticMetaObject, true, false, QObject::tr("合并三维点为spline"));
	cmdManager->regCmd("copy3", &Copy3DHandler::staticMetaObject, true, false, QObject::tr("三维复制"));
	cmdManager->regCmd("m3", &Move3DHandler::staticMetaObject, true, false, QObject::tr("三维移动"));
	cmdManager->regCmd("plane", &CurveEdgePlaneSurfaceHandler::staticMetaObject, true, false, QObject::tr("创建曲边平面"));
	cmdManager->regCmd("rs", &RuledSurfaceHandler::staticMetaObject, true, false, QObject::tr("创建直纹曲面"));
	cmdManager->regCmd("rs2", &PointRuledSurfaceHandler::staticMetaObject, true, false, QObject::tr("创建锥形直纹曲面"));
	cmdManager->regCmd("combine", &CombineCurveHandler::staticMetaObject, true, false, QObject::tr("合成空间曲线"));
	cmdManager->regCmd("rots", &CurveRevolutionHandler::staticMetaObject, true, false, QObject::tr("曲线旋转"));
	cmdManager->regCmd("pline", &Pline2DHandler::staticMetaObject, true, false, QObject::tr("多义线"));
	cmdManager->regCmd("c2", &Circle2DHandler::staticMetaObject, true, false, QObject::tr("二维圆"));
	cmdManager->regCmd("c3", &Circle3DHandler::staticMetaObject, true, false, QObject::tr("三维圆"));
	cmdManager->regCmd("sweep", &SweepHandler::staticMetaObject, true, false, QObject::tr("扫掠"));
	cmdManager->regCmd("offset", &Offset2DHandler::staticMetaObject, true, false, QObject::tr("二维偏移"));
	cmdManager->regCmd("2to3", &D2To3Handler::staticMetaObject, true, false, QObject::tr("2to3"));
	cmdManager->regCmd("autoply", &PolygonGeneratorHandler::staticMetaObject, true, false, QObject::tr("从三维折线生成多边形"));
	cmdManager->regCmd("rad2", &Radius2DHandler::staticMetaObject, true, false, QObject::tr("修改二维对象半径"));
	cmdManager->regCmd("rad3", &Radius3DHandler::staticMetaObject, true, false, QObject::tr("修改三维对象半径"));
	cmdManager->regCmd("vat", &VerticalAxisTransformHandler::staticMetaObject, true, false, QObject::tr("垂直轴变换"));
	cmdManager->regCmd("rot3", &RotateHandler::staticMetaObject, true, false, QObject::tr("三维旋转"));
}
